The present invention relates generally to computer processing, and more particularly to techniques for dynamically selecting data sources for users in a multi-user computer system and which are especially suited for analytics applications.
Business enterprises are often inundated with vast amounts of data that may be stored in a number of different data sources. Each data source may be designated to store certain data (e.g., for a particular subject area) and/or may be designated to cover a particular geographical region or locale. For example, an enterprise may maintain three different data sources to store online analytical processing (OLAP) data for three regions of the world. An another example, a large diversified company may have various sets of data sources for each of their departments, such as accounting, inventory, and sales, and one common data source for company wide information, such as product pricing information.
For a medium or large enterprise, multiple computer systems may be set up to support one or more applications (e.g., analytics application) and these systems may have access to different data sources. Users may then be specifically assigned to each system, with each user typically having access to only one system. Each system may further be configured to run against one set of data sources. For an analytics system, a data source may be a data warehouse system for a backend database, which is sometimes referred to as a data warehouse/OLAP (DW/OLAP). For a system that supports some other enterprise application, a data source may be other types of relational database management system. Each system would then obtain the necessary data from the assigned data warehouse system for computation, aggregation, and presentation to its users.
Conventionally, an enterprise may set up multiple analytics systems (e.g., for different locales), and each analytics system (i.e., each installation that includes an analytics server) may be configured to run against one data warehouse system. The target data warehouse system is typically fixed for each analytics system and all users assigned to this system would then use the same data warehouse for their queries.
This multi-system implementation with fixed data sources is undesirable for several reasons. First, there are administrative overhead costs associated with the need to maintain multiple systems. Second, the users' ability to move across systems is normally restricted. Because each system only has access to certain designated data sources, the users are correspondingly limited to only the data stored in those data sources.
For many enterprises, it may be highly desirable to be able to share certain data more freely among users. For example, it may be advantageous to store product information and other common data in a single backend database that can be accessible to all users. In addition, it may also be desirable to direct or channel users to only the data stores that are pertinent to these users. For example, customer information and other region-specific data may be stored in different backend databases, and it would be desirable to be able to direct each user to the specific data source that stores the database applicable to that user.
As can be seen, techniques that can provide the above features are highly desirable. Moreover, the implementation to provide these features should be both simple, so that little administrative overhead is required, and flexible, so that users may be easily directed to their data stores.